package com.ruoyi.report.dto;

import com.hig.onlineexam.domain.dto.LatestExamScore;
import com.ruoyi.oiltank.domain.OilTank;
import com.ruoyi.report.domain.ReportDc;
import com.ruoyi.report.domain.ReportOilDepot;
import com.ruoyi.report.domain.ReportSc;
import com.ruoyi.station.domain.ReportGasStation;
import com.ruoyi.studylog.domain.TodayStudyLog;
import lombok.Data;

import java.util.List;

@Data
public class DataObj {

    private MonthlyPurchasePlan monthlyPurchasePlan;
    private XizangDistributionCenter xizangDistributionCenter;
    private AirportOilDepotAndStation airportOilDepotAndStation;
    private LinzhiSupplyStation linzhiSupplyStation;
    private RikezeSupplyStation rikezeSupplyStation;
    private AliSupplyStation aliSupplyStation;
    private MajorHazardInspection majorHazardInspection;
    private GeneralHazardInspection generalHazardInspection;
    private RiskLevelManagement riskLevelManagement;
    private LearningMaterialsStatus learningMaterialsStatus;
    private PersonnelLearningStatus personnelLearningStatus;
    private ExamStatus examStatus;
    private EquipmentFacilityManagement equipmentFacilityManagement;

    // Getters and Setters
@Data
    public static class MonthlyPurchasePlan {
        private List<Object> tableData;
        // Getters and Setters
    }
    @Data
    public static class XizangDistributionCenter {
        private StationInfo stationInfo;
        private List<OilTank> oilTanks;
        private List<ReportDc> tableData;
        private ChartData chartData;
        // Getters and Setters
    }
    @Data
    public static class AirportOilDepotAndStation {
        private OilTankInfo oilTankInfo;
        private StationInfo stationInfo;
        private List<OilTank> oilTanksLasa;
        private List<OilTank> oilTanksYouku;
        private List<ReportGasStation> tableDataLasa;
        private List<ReportOilDepot> tableDataYouku;
        private ChartData chartData;
        // Getters and Setters
    }
    @Data
    public static class LinzhiSupplyStation {
        private StationInfo stationInfo;
        private List<OilTank> oilTanks;
        private List<ReportSc> tableData;
        private ChartData chartData;
        // Getters and Setters
    }
    @Data
    public static class RikezeSupplyStation {
        private StationInfo stationInfo;
        private List<OilTank> oilTanks;
        private List<ReportSc> tableData;
        private ChartData chartData;
        // Getters and Setters
    }
    @Data
    public static class AliSupplyStation {
        private StationInfo stationInfo;
        private List<OilTank> oilTanks;
        private List<ReportSc> tableData;
        private ChartData chartData;
        // Getters and Setters
    }
    @Data
    public static class MajorHazardInspection {
        private List<Object> tableData;
        // Getters and Setters
    }
    @Data
    public static class GeneralHazardInspection {
        private List<Object> tableData;
        // Getters and Setters
    }
    @Data
    public static class RiskLevelManagement {
        private List<Object> tableData;
        // Getters and Setters
    }
    @Data
    public static class LearningMaterialsStatus {
        private List<FileGroupDTO> tableData;
        // Getters and Setters
    }
    @Data
    public static class PersonnelLearningStatus {
        private List<TodayStudyLog> tableData;
        // Getters and Setters
    }
    @Data
    public static class ExamStatus {
        private List<LatestExamScore> tableData;

        // Getters and Setters
    }
    @Data
    public static class EquipmentFacilityManagement {
        private List<Object> tableData;
        // Getters and Setters
    }
    @Data
    public static class StationInfo {
        // Fields for station info (id, name, etc.)
        // Getters and Setters
    }

    @Data
    public static class ChartData {
        private List<TruckData> gatherOilTruckCount;
        private List<TruckData> gatherOilTruckTon;
        private List<TruckData> distributeOilTruckCount;
        private List<TruckData> distributeOilTruckTon;
//        private List<TruckData> jiayouOilTruckCount;
//        private List<TruckData> jiayouOilTruckTon;
        // Getters and Setters
    }
    @Data
    public static class TruckData {
        private String count;
        private String time;
        // Getters and Setters
    }
    @Data
    public static class OilTankInfo {
        // Fields for oil tank info (id, name, etc.)
        // Getters and Setters
    }
}
